Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

Microprocesador Motorola 68000 (página 2)



Partes: 1, 2

 

MOTOROLA 68000

Como ya se dijo el MC68000 es un microprocesador
de 16/32 bits fabricado por Motorola que sirve para realizar
programas en
assembler. Algunas características del MC68000 son: Su
alimentación única es de +5V, la
frecuencia de funcionamiento es de 4-25MHz también soporta
5 tipos de datos:
Bits (1), BCD (4), BYTE (8), WORD (16) y
LONG (32 bits), tiene 56 diferentes tipos de instrucciones y 14
modos de direccionamiento, entre otras.

ARQUITECTURA Y PROGRAMACIÓN DEL
MC68000

− Consta de 16 Bus datos (D0 D1
D2…D15)

− Consta de 24 Bus direcciones: A1…A23, donde A0
es interno y apunta a los 2 bytes en memoria, A0 a A23
son direcciones de 000000H a FFFFFFH

− Tiene 8 registros de
datos de 32 bits

− Tiene 8 registros de direcciones de 32 bits
desde la A0 hasta A7 (A7 puntero de pila SP)

− Gran ortogonalidad ya que todas las
instrucciones tienen los mismos modos de
direccionamiento

– El tamaño del operando se especifica,
explícitamente,

en la instrucción: MNEMÓNIICO.N (donde N
es B para byte, W para Word y L para long Word)

– Otras instrucciones soportan tamaños
predefinidos y no requieren el uso del formato
anterior.

El MC68000 puede ejecutar sus instrucciones en dos modos
diferentes estos son: el modo usuario y el modo
supervisor.

  • El MODO USUARIO, conforma un entorno de programación para la ejecución de
    los programas de aplicación. En este modo no se pueden
    ejecutar ciertas instrucciones y no se puede acceder a parte
    del registro de
    Estado.
  • El MODO SUPERVISOR permite utilizar el juego de
    instrucciones completo y acceder a todo el registro de Estado,
    tanto en lectura como
    en escritura.
    Se establece así unos "privilegios" de utilidad en
    sistemas
    operativos y software de
    base de los sistemas.

Registros de Datos: Cada registro se puede
considera como una palabra larga de 32 bits (bit de signo = bit
31), dos palabras de 16 bits (palabras alta y baja), en este modo
sólo se accede a la palabra baja (Bit de signo = bit 15) y
la escritura del tamaño de la palabra, no altera la
palabra alta, y el modo cuatro bytes, en este modo byte, se
accede al byte bajo de la palabra baja, dejando intactos los
restantes bits (Bit de signo = bit 7).

Registros de Direcciones (A0-A6): Este registro
contienen las direcciones de memoria que usan los modos de
direccionamiento. La dirección del operando resultante
del

modo de direccionamiento debe ser par para palabra y
palabra larga, y par o impar, para

byte. Aquí solo admiten el modo palabra o el de
palabra larga para lectura/escritura, sin embargo, una escritura
en modo palabra modificaría los 32 bits del registro
(extensión de signo). También se debe indicar que
las operaciones con
estos registros no modifican los bits del CCR.

Registro de Dirección A7: Este registro es
el puntero de pila (Stack Point o SP), que
físicamente está desdoblado en dos registros: USP y
SSP accesibles según el modo de funcionamiento (Usuario o
Supervisor).

El SP se decrementa cuando se introducen datos en la
pila y se

incrementa cuando estos se extraen y siempre apunta al
último dato

almacenado.

Contador de Programa
(PC):
Este contiene la dirección de memoria donde se
encuentra la siguiente instrucción a ejecutar. Sólo
se utilizan los 24 bits menos significativos.

Registro de estado (SR): Este registro se divide
en dos mitades de 8 bits: Byte del Sistema (acceso
sólo en modo supervisor) y Byte de Usuario o CCR (que
contiene los flags).

Modos de direccionamiento:

1. Inmediato: En este modo el dato se encuentra
en una o varias de las palabras de extensión que siguen a
la palabra de operación de la propia instrucción.
Este modo se utiliza para inicializar los contenidos de los
registros (datos o direcciones) a un valor
determinado o para incrementar su valor. Sintaxis:
MNEMÓNICO.N #DATO,
OPERANDO_DESTINO

2. Relativo al registro: que pueden ser
mediante:

  • Registro de Datos Directo: Donde el operando
    está en el registro de datos especificado por la
    dirección efectiva.

Sintaxis: MNEMÓNICO.N Dn,
OPERANDO_DESTINO

Ejemplo:

  • Registro Direcciones Directo: Donde el operando
    está en el registro de direcciones especificado por la
    instrucción.

Sintaxis: MNEMÓNICO.N An,
OPERANDO_DESTINO

Ejemplo:

  • Registro Direcciones Indirecto: En este registro el
    operando está en la posición de memoria indicada
    por el registro de direcciones especificado en la
    instrucción.

Sintaxis: MNEMÓNICO.N
(An),OPERANDO_DESTINO

  • Registro Direcciones Indirecto con Postincremento:
    Aquí el operando está en la posición de
    memoria indicada por el registro de direcciones

especificado en la instrucción. Después
de acceder, el registro de direcciones se incrementa en 1, 2 o
4 unidades dependiendo si el tamaño del operando es
byte, palabra o palabra larga respectivamente.

Sintaxis: MNEMÓNICO.N (An)+,
OPERANDO_DESTINO

  • Registro Direcciones Indirecto con Predecremento:
    Antes de acceder, el registro de direcciones se decrementa en
    1, 2 o 4 unidades dependiendo del tamaño del operando.
    Después, se accede al dato en la dirección
    resultante.

Sintaxis: MNEMÓNICO.N -(An),
OPERANDO_DESTINO

  • Registro Direcciones Indirecto con desplazamiento: En
    este modo se requiere de una palabra de extensión
    detrás del código de operación. La
    dirección del dato es la suma de la dirección
    contenida en el registro An y la constante de 16 bits,
    extendida en signo, contenida en la palabra de
    extensión.

Sintaxis: MNEMÓNICO.N
d16(An),OPERANDO_DESTINO

  • Registro Direcciones Indirecto con índice: En
    este modo se requiere de una palabra de extensión con el
    siguiente formato:

Aquí la dirección del operando se obtiene
al sumar el contenido del

registro de direcciones con la constante de 8 bits que
es dada en la palabra de extensión y el contenido del
registro índice:

Sintaxis: MNEMÓNICO.N d8 (An,
X.t), OPERANDO_DESTINO

3. Absoluto: En este modo las palabras de
extensión contienen la dirección de memoria donde
están los operandos. Existen dos tipos: absoluto largo (
que dispone de dos palabras de extensión que contienen los
24 bits de la dirección de memoria del operando) y
Absoluto corto(que dispone de una palabra de extensión,
que se extiende en signo para construir los 24 bits de la
dirección de memoria del operando).

Sintaxis Absoluto Largo:
MNEMÓNICO.N
xxxxxx,OPERANDO_DESTINO

Sintaxis Absoluto Corto:
MNEMÓNICO.N xxxx,
OPERANDO_DESTINO

4. Relativo: En este modo existen dos
modalidades: relativo con desplazamiento y relativo indexado con
desplazamiento.

Es similar a los modos indirectos con desplazamiento e
indexado con

la salvedad que el registro usado es el PC,
también permite realizar código
reubicable.

  • Relativo con Desplazamiento: Su función
    es que al contenido del PC, le suma el desplazamiento de 16
    bits extendido en signo.

Sintaxis: MNEMÓNICO.N d16 (PC),
OPERANDO_DESTINO

  • Relativo con Índice y Desplazamiento- Relativo
    con Índice y Desplazamiento: Su función es que al
    contenido del PC, se le suma el desplazamiento de 8 bits
    extendido en signo y el contenido de un registro índice
    que se extiende en signo si el tamaño es W.

Sintaxis : MNEMÓNICO.N d8
(PC,X.t),OPERANDO_DESTINO

EL CONJUNTO DE
INSTRUCCIONES

Como se dijo anteriormente el MC68000 tiene 56
instrucciones que, combinadas con los 14 modos de
direccionamiento y los cinco formatos de datos, ofrece al
programador una herramienta potente para el desarrollo de
programas.

Dichas instrucciones se dividen en distintos grupos los cuales
son:

  • Operaciones de movimiento
    de datos: MOVE, MOVEA, MOVEM,
  • MOVEQ, EXG, LEA, PEA, SWAP, LINK y
    UNLNK
  • Operaciones de aritmética entera: ADD, ADDA,
    ADDI, ADDQ, ADDX,CLR, CMP, CMPA, CMPI, CMPM, DIVU, DIVS, EXT,
    MULU, MULS,NEG, NEGX, SUB, SUBA, SUBI, SUBW , SUBX y
    CMP
  • Operaciones lógicas: AND, ANDI, EOR, EORI, OR,
    ORI, NOT y TST
  • Operaciones en BCD: ABCD, NBCD y
    SBCD
  • Operaciones de desplazamiento y rotación: ASL,
    ASR, LSL, LSR, ROL,
  • ROR, ROXL, ROXR y SWAP
  • Operaciones de manipulación de bits: BTST,
    BSET, BCLR, BCHG
  • Operaciones de control del
    programa: BRA, BSR, JMP, JSR, RTR, RTS y NOP.
  • Operaciones de control del sistema: RESET, RTE, STOP,
    TRAP,

TRAPV, CHK.

PROGRAMANDO EN EL
ENSAMBLADOR

En el MC68000 cada línea del fichero .ASM que
contiene el programa en

ensamblador debe tener el siguiente formato:

Label: Opcode Operand(s); Comment

Este campo Label (etiqueta) es opcional, Opcode es el
que contiene el mnemónico de la instrucción o la
directiva del ensamblador.

Operand(s), son los operandos (1 o 2 o ninguno) de la
instrucción o

Directiva. Si hay 2 o más operandos, estos se
separan por comas.

Y el último campo es el del comentario que es
opcional y comienza con punto y coma.

DIRECTIVAS DE
ENSAMBLADOR

Todos los programas deben ser escritos con un editor que
no introduzca caracteres de control. Igualmente los programas han
de contener la directiva ORG al principio del programa y la
directiva END al final de éste.

ORG: Esta directiva inicializa el contador de
programa con el valor del operando. Si no se utiliza una
directiva ORG, se asume que el PC vale 0.

Su sintaxis: ORG valor

Ejemplo: ORG $400 directiva ORG con valor de
400

EQU: Esta directiva asigna al símbolo
contenido en el campo etiqueta el valor de la expresión en
el campo operando.

Sintaxis: etiqueta EQU valor

Ejemplo: PI EQU 3.1416

END: Esta directiva indica que el código
ensamblador ha finalizado. No se ensamblará el texto situado
a continuación de la directiva.

Sintaxis: END etiqueta

Ejemplo: END programa (programa es la etiqueta situada
en la

primera instrucción del programa).

DC: La directiva DC define constantes en memoria,
y permite asignar valores
numéricos, tablas, caracteres o cadenas a variables de
memoria.

Añadiendo .B, .W o .L se indica el tamaño
de la constante. Si no se

indica nada, se asume tamaño W. Se pueden asignar
hasta 256 bytes de datos en una única
directiva.

DS: La directiva DS se utiliza para reservar
posiciones de memoria. Añadiendo .B, .W o .L se indica el
tamaño de cada elemento reservado. Así mismo que en
la directiva DC si no se indica el tamaño, se asume como
tamaño W.

Sintaxis: LABEL: DS.t valor

Ejemplo:

DS.B 256; Reserva 256 bytes consecutivos de
memoria

DS.L 1; Reserva una palabra larga

Hola: DS 2; Reserva dos palabras en la dirección
asignada a

; Hola

En este ejemplo se mostrara como es la
programación en el MC68000, el objetivo del
programa es el Cálculo de
la medida de una tabla de 10 datos de 8 bits, almacenada en
memoria a partir de una posición dada por una
etiqueta.

La solución a dicho planteamiento seria a
siguiente:

* SECCIÓN DE CÓDIGO *

******************************************

ORG $400

INICIO:

MOVEA.L #PILA, A7; Cargamos el puntero de
pila

MOVE.L #TABLA, A0; Cargamos A0 con la dirección
de la tabla

MOVE.L #N_DAT-1,D0 ; Cargamos el número de
elementos

CLR.L D1; D1 almacenará la SUMA de los
datos

CLR.L D2; D2=0

LAZO MOVE.B (A0)+, D2; Cargamos en D2 cada
elemento

ADD.W D2, D1; Sumamos al resultado anterior

DBF D0, LAZO; Repetimos hasta que D0=-1

DIVU #N_DAT, D1; Dividimos D1/N

MOVE.B D1, RESULT; Almacenamos el resultado

FIN BRA FIN

******************************************

* SECCIÓN DE DATOS *

******************************************

ORG $20000

TABLA DC.B
$01,$02,03,%00000100,$05,06,07,08,%00001001,10

RESULT DS.B 1

PILA EQU $28000

N_DAT EQU 10

END inicio

 

Laura Bolo Suasnabar

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter